// 将字符串转换为数组进行操作，使用双指针进行赋值
var replaceSpace = function (s) {
	// 1. 转数组
	s = s.split("");
	// 2. 获取替换前后的字符串长度
	let oldLength = s.length;
	let newLength = oldLength
	for (let i = 0; i < oldLength; i++) {
		if (s[i] === ' ') {
			// %20 比原来的空格多了两个位置
			newLength += 2;
		}
	}
	s.length = newLength;
	// 3. 双指针移动
	for (let prev = oldLength - 1, rear = newLength - 1; prev >= 0; prev--, rear--) {
		// 3.1 prev指向的不是空格则复制
		if (s[prev] !== ' ') {
			s[rear] = s[prev];
		}
		// 3.2 prev指向的是空格则添加 %20 的字符
		if (s[prev] === ' ') {
			s[rear] = '0';
			s[rear - 1] = '2';
			s[rear - 2] = '%';
			rear -= 2;
		}
	}
	return s.join("");
};

const s = "We are happy.";
console.log(replaceSpace(s));